﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TA.JSON
{
	/// <summary>
	/// Different types of JSON tokens that a JSON parser can encounter.
	/// </summary>
	public enum JsonToken
	{
		/// <summary>
		/// This is returned by the <see cref="JsonReader"/> if a <see cref="JsonReader.Read()"/> method has not been called. 
		/// </summary>
		None,
		/// <summary>
		/// An object start token.
		/// </summary>
		StartObject,
		/// <summary>
		/// An array start token.
		/// </summary>
		StartArray,
		/// <summary>
		/// An object end token.
		/// </summary>
		EndObject,
		/// <summary>
		/// An array end token.
		/// </summary>
		EndArray,
		/// <summary>
		/// An object property name.
		/// </summary>
		PropertyName,
		///// <summary>
		///// A constructor start token.
		///// </summary>
		//StartConstructor,
		///// <summary>
		///// A comment.
		///// </summary>
		//Comment,
		///// <summary>
		///// Raw JSON.
		///// </summary>
		//Raw,
		/// <summary>
		/// An interger.
		/// </summary>
		Integer,
		/// <summary>
		/// A float.
		/// </summary>
		Float,
		/// <summary>
		/// A string.
		/// </summary>
		String,
		/// <summary>
		/// A boolean.
		/// </summary>
		Boolean,
		/// <summary>
		/// A Date.
		/// </summary>
		DateTime,
		/// <summary>
		/// A null token.
		/// </summary>
		Null,
		///// <summary>
		///// An undefined token.
		///// </summary>
		//Undefined,
		///// <summary>
		///// A constructor end token.
		///// </summary>
		//EndConstructor,

	}
}
